From c35f491795cc78871a565cd2bb8fef7cf2088a38 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 17 Jun 2023 16:05:09 +0200 Subject: [PATCH] vulkan: Store the VkFormat in GskVulkanImage ... and use that info when creating renderpasses. --- gsk/vulkan/gskvulkanimage.c | 9 +++++++++ gsk/vulkan/gskvulkanimageprivate.h | 1 + gsk/vulkan/gskvulkanrenderpass.c | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gsk/vulkan/gskvulkanimage.c b/gsk/vulkan/gskvulkanimage.c index ed6aa2ae51..030a3ac979 100644 --- a/gsk/vulkan/gskvulkanimage.c +++ b/gsk/vulkan/gskvulkanimage.c @@ -35,6 +35,7 @@ struct _GskVulkanImage GdkVulkanContext *vulkan; GdkMemoryFormat format; + VkFormat vk_format; gsize width; gsize height; VkImageUsageFlags vk_usage; @@ -581,6 +582,7 @@ gsk_vulkan_image_new (GdkVulkanContext *context, self->vulkan = g_object_ref (context); self->format = format; + self->vk_format = vk_format->format; self->width = width; self->height = height; self->vk_usage = usage; @@ -874,6 +876,7 @@ gsk_vulkan_image_new_for_swapchain (GdkVulkanContext *context, self->width = width; self->height = height; self->vk_image = image; + self->vk_format = format; gsk_vulkan_image_create_view (self, &(GskMemoryFormatInfo) { @@ -1091,3 +1094,9 @@ gsk_vulkan_image_get_image_view (GskVulkanImage *self) { return self->vk_image_view; } + +VkFormat +gsk_vulkan_image_get_vk_format (GskVulkanImage *self) +{ + return self->vk_format; +} diff --git a/gsk/vulkan/gskvulkanimageprivate.h b/gsk/vulkan/gskvulkanimageprivate.h index db7036b902..25ab54ded4 100644 --- a/gsk/vulkan/gskvulkanimageprivate.h +++ b/gsk/vulkan/gskvulkanimageprivate.h @@ -84,6 +84,7 @@ gsize gsk_vulkan_image_get_width (GskVulk gsize gsk_vulkan_image_get_height (GskVulkanImage *self); VkImage gsk_vulkan_image_get_image (GskVulkanImage *self); VkImageView gsk_vulkan_image_get_image_view (GskVulkanImage *self); +VkFormat gsk_vulkan_image_get_vk_format (GskVulkanImage *self); G_END_DECLS diff --git a/gsk/vulkan/gskvulkanrenderpass.c b/gsk/vulkan/gskvulkanrenderpass.c index 3dce46d622..b5a96eae7b 100644 --- a/gsk/vulkan/gskvulkanrenderpass.c +++ b/gsk/vulkan/gskvulkanrenderpass.c @@ -186,7 +186,7 @@ gsk_vulkan_render_pass_new (GdkVulkanContext *context, .attachmentCount = 1, .pAttachments = (VkAttachmentDescription[]) { { - .format = gdk_vulkan_context_get_image_format (self->vulkan), + .format = gsk_vulkan_image_get_vk_format (target), .samples = VK_SAMPLE_COUNT_1_BIT, .loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR, .storeOp = VK_ATTACHMENT_STORE_OP_STORE, -- 2.30.2